[백준] 11725 - 트리의 부모 찾기 (파이썬)

문제

문제 링크

풀이

BFS 알고리즘을 사용해서 풀었다.

현 노드와 인접한 다음 레벨의 노드들을 탐색하면서, 해당 노드의 부모가 현 노드임을 표시해주기만 하면 된다.

import sys
from collections import deque

n = int(sys.stdin.readline().strip())
graph = [[] for _ in range(n+1)]
answer = [0]*(n+1) # 각 노드의 부모 노드를 표시할 리스트

for i in range(n-1):
    a, b = map(int, sys.stdin.readline().strip().split(" "))
    graph[a].append(b)
    graph[b].append(a)

deq = deque([1])
answer[1] = 1
while deq:
    now = deq.popleft()
    for next in graph[now]:
        if answer[next] == 0:
            answer[next] = now  # 부모 노드 표시
            deq.append(next)

for i in range(2, n+1):
    print(answer[i])

Written by@[hyem]
Hyem's Dev Note

GitHub